using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;

namespace Brilliance
{
    public interface ISessionContext : IDisposable
    {
        void SaveOrUpdate(object obj);
        void Flush();
        void Evict(object obj);
        void Update(object obj);
        void Save(object obj);

        void Clear();
        void Delete(object objectToDelete);

        bool IsOpen { get; }

        void Reconnect();
        void Disconnect();
        void Close();
        IList ExecuteSingleColumnQuery(string query);
        void Reassociate(object obj);
        void Refresh(object obj);
        bool Exists<T>(Guid obj);
        T FindUnique<T>(string query);
        bool Exists(Type type, object id);
        event EventHandler Disposing;
    }
}